package com.pi.pro.xcmg.am.was.edi.infor.dto.reply;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

/**
 *  接口反馈数据
 */
@Getter
@Setter
public class FuncReplyListData<T> implements Serializable {


    // 流程运行码	processRunCode	string		固定值，对接方不用关注
    private String processRunCode;

    //接口代码	processCode	string		固定返回 P_WCS2WMS_INVENTORY_QUERY
    private String processCode;

    //项目号	projectCode	string		固定返回 XCMG
    private String projectCode;

    //
    //流程名称	processName	string		对应接口代码的名称
    private String processName;

    //运行代码		string		固定值，对接方不用关注
    private String runCode;


    //开始执行时间	startTime	number		时间戳，对接方不用关注
    private Long startTime;

    //结束执行时间	endTime	number		时间戳，对接方不用关注
    private Long endTime;

    //用户id		number		固定值，对接方不用关注
    private Long userId;

    //eai系统	userName	string		固定值，对接方不用关注
    private String userName;

    //是否常驻流程	longRun	boolean		固定值，对接方不用关注
    private Boolean longRun;

    //异步进程ID	asyncProcessTaskId	string		固定值，对接方不用关注
    private String asyncProcessTaskId;

    // 流程输出参数	resultData.__PROCESS_OUTPUT__	object		响应业务字段的封装对象，要获取响应的业务字段，需要进入这一层(比如：resultCode状态字段就在这里面)
    private FuncReplyListResultsDto<T> resultData;

    //代码异常信息	warnErrors	string		流程标签中出现跳过错误属性，这里会有数据;
    private String warnErrors;

    //代码异常信息	errors	array		如果接口代码异常，异常信息会抛到这里面，__PROCESS_OUTPUT__的值将会为null或空对象
    private List<String> errors;


    public String toString() {
        StringBuffer buf = new StringBuffer();
        buf.append("{");
        //
        buf.append("processRunCode:");
        if (this.processRunCode != null) {
            buf.append(this.processRunCode);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("processCode:");
        if (this.processCode != null) {
            buf.append(this.processCode);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("projectCode:");
        if (this.projectCode != null) {
            buf.append(this.projectCode);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("processName:");
        if (this.processName != null) {
            buf.append(this.processName);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("runCode:");
        if (this.runCode != null) {
            buf.append(this.runCode);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("startTime:");
        if (this.startTime != null) {
            buf.append(String.valueOf(this.startTime));
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("endTime:");
        if (this.endTime != null) {
            buf.append(String.valueOf(this.endTime));
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("userId:");
        if (this.userId != null) {
            buf.append(String.valueOf(this.userId));
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("userName:");
        if (this.userName != null) {
            buf.append(this.userName);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("longRun:");
        if (this.longRun != null) {
            buf.append(String.valueOf(this.longRun));
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("asyncProcessTaskId:");
        if (this.asyncProcessTaskId != null) {
            buf.append(this.asyncProcessTaskId);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("resultData:");
        if (this.resultData != null) {
            buf.append(this.resultData);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("warnErrors:");
        if (this.warnErrors != null) {
            buf.append(this.warnErrors);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("errors:");
        if ((this.errors==null) || (this.errors.size()==0)){
            buf.append("[]");
        }else {
            buf.append("[");
            for (String e:this.errors){
                if (e==null){
                    continue;
                }
                buf.append(e).append(",");
            }
            buf.append("]");
        }
        buf.append("}");
        return buf.toString();
    }
}
